/**
 * Author:   e20160504
 * Date:     2018/6/7 20:28
 * Description:
 */
package com.kevin.demo.framwork;

import com.kevin.demo.enums.ResultEnum;
import com.kevin.demo.exception.MyException;

import java.util.List;

public class ResultUtils {

    /**
    *@params: 成功默认code，msg
    *@return: data为空的result
    *@desc: 执行成功
    */
    public static Result success(){
        return new Result(ResultEnum.SUCCESS,"");
    }

    /**
    *@params: 要返回的数据
    *@return: data为o的result
    *@desc:  执行成功
    */
    public static Result success(Object o){
        return new Result(ResultEnum.SUCCESS,o);
    }

    /**
    *@params: 成功的msg
    *@return: 自定义msg的result
    *@desc:   执行成功
    */
    public static Result success(String msg){
        return new Result(ResultEnum.SUCCESS.getCode(),msg,"");
    }

    /**
    *@params: 结果集doc，总记录数 totalCount
    *@return: data为分页结果的result
    *@desc:   执行成功
    */
    public static Result successPage(List doc,Long totalCount){
        return new Result(doc,totalCount);
    }

    /**
    *@params: 失败默认code，msg
    *@return: data为空的result
    *@desc:   执行失败
    */
    public static Result error(){
        return new Result(ResultEnum.SYSTEM_ERROR,"");
    }

    /**
    *@params: 自定义失败code，msg
    *@return: data为空的result
    *@desc:   执行失败
    */
    public static Result error(MyException e){
        return new Result(e,"");
    }

    /**
    *@params:  自定义失败code，msg
    *@return: data为空的result
    *@desc:   执行失败,效果同上一方法
    */
    public static Result error(ResultEnum error){
        return new Result(error,"");
    }

    /**
    *@params: 自定义错误描述
    *@return: 自定义错误描述的，code为500,的result
    *@desc:   执行失败
    */
    public static Result error(String msg){
        return new Result(500,msg,"");
    }

    /**
    *@params: true/false
    *@return: true 成功，false失败
    *@desc:   返回成功或失败
    */
    public static Result runtimeResult(Boolean flag){
        return flag?success():error();
    }
}
